(for Internet Explorer)
Sub  WriteTextSectionClass::PickUp( Key as string )
残すセクションを選択します。
【引数】
Key
セクションの中に含まれる文字列
ソース
→ ToolsLib.vbs
本関数を1度でも呼び出すと、WriteTextSectionClass のオブジェクトの参照カウンターが 0
になったとき、選択されなかったセクションはすべて削除されます。
本関数を1度も呼び出さなかったときは、すべてのセクションが残ります。
関連
[SectionX]
SettingA = abc

SettingB = 12
; comment

[SectionY]
SettingA = BC
下記の形式のテキストファイルで記述された設定値を扱います。
行末までのコメント記号は、行頭のみ対応
空行も可能
セクション名は省略可能
Function  ParseIniFileLine( Line as string ) as ParsedIniFileLineClass
.ini ファイルに書かれた行を解析します。
【引数】
Line
.ini ファイルの中の1行
解析結果
返り値
    Set line = ParseIniFileLine( "[Section1]" )
        '// line.Section = "Section1"
        '// line.Name    = Empty
        '// line.Value   = Empty

    Set line = ParseIniFileLine( "Name = Value" )
        '// line.Section = Empty
        '// line.Name    = "Name"
        '// line.Value   = "Value"

    Set line = ParseIniFileLine( "Name =" )
        '// line.Section = Empty
        '// line.Name    = "Name"
        '// line.Value   = ""

    Set line = ParseIniFileLine( "comment" )
        '// line.Section = Empty
        '// line.Name    = Empty
        '// line.Value   = Empty
サンプル
[ ] で囲まれた行は、セクション名として解析します。
= がない行は、コメント行として解析します。
ParsedIniFileLineClass
.Section
.Name
.Value
セクション名
左辺
右辺
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
T_GetIniFileTextValue
Function  GetIniFileTextValue( IniText as string, SectionName as string,
    VariableName as string, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
関連
テスト
ソース
変数の設定値
返り値
Empty を指定してください
Option_
→ vbslib.vbs
→ T_IniFile.vbs
T_GetIniFileTextValue
Assert  GetIniFileTextValue( text, Empty, "NameA", Empty ) = "Value"
サンプル
該当する変数が存在しないときは、Empty が返ります。
Assert  GetIniFileTextValue( text, "SectionB", "NameA", Empty ) = "Value"
Function  GetIniFileTextValues( IniText as string, SectionName as string,
    VariableName as string, Option_ as Empty ) as array of string
.ini ファイルに書かれた設定値を複数参照します。
【引数】
IniText
SectionName
.ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
変数の設定値の配列
返り値
Empty を指定してください
Option_
該当する変数が存在しないときは、空の配列が返ります。
サンプル
Assert  IsSameArray( GetIniFileTextValues( text, "Section", "NameA", Empty ), _
    Array( "Value1", "Value2" )
テスト
ソース
→ T_IniFile.vbs
T_GetIniFileTextValue
→ vbslib.vbs
after_text = SetIniFileTextValue( before_text, Empty, "NameA", "Value", Empty )
Function  SetIniFileTextValue( IniText as string, SectionName as string,
    VariableName as string, Value as Variant, Option_ as Empty ) as string
.ini ファイルに書かれた設定値を変更します。
【引数】
IniText
SectionName
変更前の .ini ファイルの内容
セクション名、セクションがないファイルでは=Empty
VariableName
変数名
サンプル
変更後の .ini ファイルの内容
返り値
Empty を指定してください
変更後の変数の設定値
Option_
Value
関連
テスト
ソース
→ vbslib.vbs
→ T_IniFile.vbs
T_SetIniFileTextValue
該当する変数が存在しないときは、エラーになります。
Sub  RenumberIniFileData( ReadStream as TextStream, WriteStream as TextStream,
    StartNumber as integer, IsPlusSpaceLineOnly as boolean )
.ini ファイルの内容のうち、= より左にある ( ) の中の番号を振り直します。
【引数】
ReadStream
入力ストリーム
WriteStream
出力ストリーム
開始番号
StartNumber
空行があるときだけ番号を+1するかどうか
IsPlusSpaceLineOnly
サンプル・データ
Data(2) = ABC
Data(5) = DEF
Data(6) = DEF
Data(1) = ABC
Data(2) = DEF
Data(3) = DEF
入力
出力
関連
ソース
→ vbslib.vbs
Function  ParseJSON( JSON_String as string ) as JS_Object
JSON をパース(構文解析)します。
【引数】
JSON_String
返り値
JSON 形式の文字列データ
JSON のデータにアクセスできるオブジェクト
Set json = ParseJSON( "{'attribute_1':'One', 'attr2':'Two'}" )
echo  json.attribute_1  '// "One"
サンプル
→ JSON (JavaScript Object Notation)
参考
(src)
省略された属性に対して、返り値から参照しようとすると、エラー 438 になります。
関連
CutSharpIf  "sample.c", Empty, "SAMPLE", True
Sub  CutSharpIf( InputPath as string, OutputPath as string, Symbol as string, IsCutTrue as boolean )
#ifdef 〜 #endif をカットします。
【引数】
InputPath
OutputPath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
Symbol
#define シンボル、または、#if の条件文
関連
テスト
サンプル
ソース
T_CutSharpIf
IsCutTrue
#if が真の部分をカットする(True)か、偽の部分をカットする(False)か
→ T_CutSharpIf.vbs
→ ToolsLib.vbs
CutSharpIf  "FolderA", "FolderB", "SAMPLE_A  ||  SAMPLE_B", False
→ ParsedRanges_getCut_by_PP_Directive
→ vbslib_helper.c
Sub  CutCommentC( in_Path as string, in_Empty as Empty )
C/C++言語のソース ファイルからコメントを削除します。
【引数】
in_Path
コメントを削除するソース ファイルのパス
in_Empty
Empty を指定してください(予約)
→ clib - CutCommentC_1
コメントを削除する前の内容は上書きされて無くなるので、バックアップを取ってから実行して
ください。
テスト
→ T_CutCommentC.vbs
ソース
→ ToolsLib.vbs
→ vbslib_helper.c
Set w_=AppKey.NewWritable( "Folder" ).Enable()
CutCommentC  "Folder\Source.c", Empty
"Folder\Source.c"
参考
T_CutCommentC
in_Path 引数には、
の引数のように ワイルドカードなどを指定できます。
テスト
→ T_NaturalDocs.vbs
→ ToolsLib.vbs
ソース
MakeDocumentByNaturalDocs  "src", "HTML", Empty
Sub  MakeDocumentByNaturalDocs( SourceRootPath as string, DocumentRootPath as string,
    Options as Empty )
Natural Docs を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
Natural Docs や ActivePerl がインストールされていないと、インストールを即す警告が表示
されます。
参考
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー(キャッシュ)を作り直します。 プロジェクトフォルダーは、
の中に作られ、日付が変わると作り直します。
補足
→ Natural Docs
参考
を設定すると、Natural Docs に入力する拡張子を
変更できます。
ソースファイルは、現在のコードページ(日本なら Shift-JIS)、または Unicode(UTF-16) に
してください。
関連
MakeDocumentBy_doxygen  "src", "HTML", Empty
Sub  MakeDocumentBy_doxygen( SourceRootPath as string, DocumentRootPath as string,
    Options as Empty )
doxygen を実行して、ソースファイルからHTML形式のドキュメントを生成します。
【引数】
SourceRootPath
DocumentRootPath
ソースファイルがあるフォルダーのパス
HTML形式のドキュメントを生成するフォルダーのパス
Options
Empty を指定してください
サンプル
参考
ソースファイルは、現在のコードページ(日本なら Shift-JIS)、または Unicode(UTF-16) に
してください。
→ doxygen
関連
テスト
→ T_doxygen.vbs
→ ToolsLib.vbs
ソース
doxygen がインストールされていないと、インストールを即す警告が表示されます。
参考
DocumentRootPath に指定したパスにフォルダーを消すと、Natural Docs のプロジェクト
フォルダー(キャッシュ)を作り直します。 プロジェクトフォルダーは、
の中に作られ、日付が変わると作り直します。
補足
を設定すると、Natural Docs に入力する拡張子を
変更できます。
Sub  ConvertDocumetCommentFormat( InputPath as string,  OutputPath as string,
    InputFormat as string,  OutputFormatFilePath as string )
プログラムのソースファイルの中にある、ドキュメントに変換できるコメントの形式を変換します。
【引数】
InputPath
OutputPath
InputFormat
現在、"NaturalDocs" のみ指定できます
→ ToolsLib.vbs
テスト
ソース
→ T_TextSection.vbs
T_ConvertDCF
出力するコメントのテンプレートが書かれたファイルのパス
OutputFormatFilePath
入力ファイルやフォルダーのパス
出力ファイルやフォルダーのパス
→ T_ConvertDCF フォルダー
サンプル
コールツリー
ConvertDCF_Class_convert
NaturalCommentClass_printXML
NaturalDocsHeaderClass
(src)
ConvertDCF_onXML_Element
if ( _tcsicmp( in_Status->TagName, _T("Text") ) == 0 ) {
ConvertDCF_Class::Comments.ID
(src)
(src)
NaturalCommentClass
(src)
ConvertDCF_CommentClass_getReplaced
(src)
/* Set "descriptions" : Replaced from "${Descriptions}" */
(src)
ConvertDocumentCommentFormat
ConvertDocumetCommentFormat
1つのコメントを置き換える
MakeNaturalComments_C_Language
NaturalDocs 形式コメントをパースする
現在、C言語の NaturalDocs 形式コメントから、doygen (Javadoc)形式コメントへの変換の
一部のみ可能です。
関連
(src)
Sub  DoTextShrink( TxMxFilePath as string,  Option as Empty )
セクション(NaturalDocs で区切ったソース ファイル)のうち、使用していないセクションを削除します。
【引数】
TxMxFilePath
Option
編集するファイルなどが記述された .txmx ファイルのパス(下記)
Empty を指定してください
テスト
→ T_TextSection.vbs
T_TextShrink
ListUpTextShrinkKeywords
TxMxClass
(src)
DoTextShrink
(src)
ListUpUsingTxMxKeywords
vbs(src)
MakeShrinkedSectionsFile
(src)
ListUpUsingTxMxKeywords
c(src)
DoTextMix
vbs(src)
c(src)
TxMxListUp_listUpUsedNames
c(src)
TxMxListUp_readSetting
T_MakeTxScFile
MakeNaturalComments_C_Language
NaturalCommentClass
→ T_TextShrink フォルダー
ソース
→ ToolsLib.vbs
関連
CSV 形式の1行を解析して、それぞれの項目を配列に格納します。
Function  ArrayFromCSV( a_CSV as string ) as Array of string
For Each column  In ArrayFromCSV( "ABC , DEF" )
Next
【引数】
a_CSV
返り値
CSV 形式の1行
(出力)CSV の項目が入った配列
関連
各項目の両端の空白が削除されたものが戻ります。
項目の端に空白文字がある場合と、項目の中にコンマやダブルクォーテーション(")が
あるときは、" " で囲んでください。 ただし、ダブルクォーテーション1文字あたり、
ダブルクォーテーションを2つ並べてください。
→ T_CSV.vbs # ArrayFromCSV
テスト
(src)
Function  ArrayFromCSV_Int( a_CSV as string ) as Array of integer
上記 ArrayFromCSV の返り値は、Array( "ABC", "DEF" )
ABC , DEF
A, "  ""ABC,"" "
A
  "ABC,"
CSV:
各項目:
VBS:
ArrayFromCSV( "A, ""  """"ABC,"""" """ )
CSV とは別に、VBS も同様に " 文字は " を2つ並べる
"A,  ,C" の真ん中の要素のように、何も無いときは、配列の要素が Empty になります。
"A, " のように最後がコンマのときは、配列の最後の要素が Empty になります
" " のように、空白文字や空文字列のときは、配列要素数が 0 になります。
ArrayFromCSV( "A,,C" ) = Array( "A", Empty, "C" )
ArrayFromCSV( "A," ) = Array( "A", Empty )
要素に "" (ダブルクオーテーション2つだけ)が指定されたときは、空文字列になります。
ArrayFromCSV( "A, """"" ) = Array( "A", "" )
ArrayFromCSV( " " ) = Array( )
複数行の文字列を指定するときは、最後の行以外の行末を "," にしてください。
ArrayFromCSV( "A, B," +vbCRLF+ "C, D," +vbCRLF+ "E, F" )
 = Array( "A","B","C","D","E","F" )
A, B,
C, D,
E, F
つまり
A, B, C, D, E, F
サンプル
性能について
本関数は処理が遅いです。
CSV ファイルのデータは、1行に対応するクラスの配列にキャッシュしておくと速くなります。
paths = ArrayFromCSV( Replace( Trim2( multi_line_string ), vbCRLF, "," ) )
サンプル
複数行の文字列から、各行を配列にする
For Each column  In ArrayFromOrPipe( Array( "*.txt | ""A *.log""", "*.xml" ) )
Next
| で区切られた文字列を解析して、それぞれの項目を配列に格納します。
Function  ArrayFromOrPipe( in_OrPipedString as string or array of string ) as Array of string
For Each column  In ArrayFromOrPipe( "ABC | DEF" )
Next
【引数】
in_OrPipedString
返り値
| または , で区切られた文字列、または、その配列
(出力) 文字列の配列
上記 ArrayFromOrPipe の返り値は、Array( "ABC", "DEF" )
ABC | DEF
サンプル
→ vbslib.vbs
ソース
とほぼ同じですが、コンマだけでなく | も区切り記号として処理します。
"*.txt | ""A *.log""", "*.xml"
上記 ArrayFromOrPipe の返り値は、Array( "*.txt", "A *.log", "*.xml" )
サンプル
テスト
→ T_Wildcard.vbs
T_ArrayFromWildcard1
T_ArrayFromWildcard2
Function  CSVFrom( a_Array as array ) as string
配列を CSV 形式に変換します。
【引数】
a_Array
返り値
配列
CSV 形式文字列
ソース
→ T_CSV.vbs
テスト
→ vbslib.vbs
Function  CSVText( s as string ) as string
CSV の1項目に変換します。
サンプル
s = CSVText( "a,b" )
s は、"""a,b""" という1つの値になります。
a と b という2つの値ではありません。
  s = ""
  For Each  t  In Array( "a", "b" )
    If s <> "" Then  s = s + ", "
    s = s + CSVText( t )
  Next
サンプル
CSV の1行を作成します
→ T_CSV.vbs
ソース
テスト
→ vbslib.vbs